﻿using System.Collections.Generic;

namespace Stimulus360.Models.Data.CustomTypes
{
    /// <summary>
    ///     This class is used for analytics to work on quarter wise data
    /// </summary>
    public static class CalendarYear
    {
        #region Month Constants
        public const int Jan = 1;
        public const int Feb = 2;
        public const int Mar = 3;
        public const int Apr = 4;
        public const int May = 5;
        public const int Jun = 6;
        public const int Jul = 7;
        public const int Aug = 8;
        public const int Sep = 9;
        public const int Oct = 10;
        public const int Nov = 11;
        public const int Dec = 12;
        #endregion

        /// <summary>
        ///     String representing Q1
        /// </summary>
        public const string Q1 = "(Jul-Sep)";

        /// <summary>
        ///     String representing Q2
        /// </summary>
        public const string Q2 = "(Oct-Dec)";

        /// <summary>
        ///     String representing Q3
        /// </summary>
        public const string Q3 = "(Jan-Mar)";

        /// <summary>
        ///     String representing Q4
        /// </summary>
        public const string Q4 = "(Apr-Jun)";

        /// <summary>
        ///     Constant representing first day of the month
        /// </summary>
        public const int FirstDay = 1;

        /// <summary>
        ///     Constant representing a month of 30 days
        /// </summary>
        public const int ThirtyDays = 30;

        /// <summary>
        ///     Constant representing a month of 31 days
        /// </summary>
        public const int ThirtyOneDays = 31;

        /// <summary>
        ///     Property returning months of Q1
        /// </summary>
        public static IList<int> FirstQuarter
        {
            get
            {
                return new List<int> { Jul, Aug, Sep };
            }
        }

        /// <summary>
        ///     Property returning months of Q2
        /// </summary>
        public static IList<int> SecondQuarter
        {
            get
            {
                return new List<int> { Oct, Nov, Dec };
            }
        }

        /// <summary>
        ///     Property returning months of Q3
        /// </summary>
        public static IList<int> ThirdQuarter
        {
            get
            {
                return new List<int> { Jan, Feb, Mar };
            }
        }

        /// <summary>
        ///     Property returning months of Q4
        /// </summary>
        public static IList<int> FourthQuarter
        {
            get
            {
                return new List<int> { Apr, May, Jun };
            }
        }





    }
}
